import os
import re

def rename_files(directory):
    # 获取目录的数字部分
    dir_number = os.path.basename(directory.rstrip('/'))
    
    # 检查目录名是否是数字
    if not dir_number.isdigit():
        print(f"目录名 '{dir_number}' 不是数字，跳过处理")
        return
    
    # 获取目录下所有符合条件的文件
    files = [f for f in os.listdir(directory) 
             if f.startswith('微信图片_') and f.endswith('.png')]
    
    if not files:
        print(f"目录 {dir_number} 中没有找到符合条件的文件")
        return
    
    # 按原始文件名排序（这会按时间顺序排列）
    files.sort()
    
    # 重命名文件
    for index, filename in enumerate(files, start=1):
        # 构建新文件名，格式为目录数字+3位序号
        new_name = f"{dir_number}{index:03d}.png"
        
        # 完整的旧路径和新路径
        old_path = os.path.join(directory, filename)
        new_path = os.path.join(directory, new_name)
        
        # 重命名文件
        os.rename(old_path, new_path)
        print(f"重命名: {filename} -> {new_name}")

def main():
    print("=== 微信图片批量重命名工具 ===")
    print("请输入要处理的目录数字（多个目录用空格分隔），例如：160 161 162")
    
    while True:
        input_str = input("\n请输入目录数字（或输入 q 退出）: ").strip()
        
        if input_str.lower() == 'q':
            print("程序退出")
            break
            
        dir_numbers = input_str.split()
        
        for dir_number in dir_numbers:
            if not dir_number.isdigit():
                print(f"'{dir_number}' 不是有效的数字，已跳过")
                continue
                
            directory_path = dir_number
            if not os.path.exists(directory_path):
                print(f"目录 '{directory_path}' 不存在，已跳过")
                continue
                
            print(f"\n正在处理目录: {directory_path}")
            rename_files(directory_path)
            print(f"目录 {directory_path} 处理完成")

if __name__ == "__main__":
    main()